//
//  NSString+ZZUtil.h
//  OCFrame
//
//  Created by hfzhangzhang on 2016/12/19.
//  Copyright © 2016年 hfzhangzhang. All rights reserved.
//

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>


@interface NSString (ZZUtil)

/**
 *  手机号正则检测
 */
- (BOOL)zz_isValidateMobileTel;

/**
 *  邮箱正则检测
 */
- (BOOL)zz_isValidateEmail;

/**
 *  身份证号正则检测
 */
- (BOOL)zz_isValidateIdentityCard;


/** number */
- (BOOL)zz_isNumber;

/** empty */
- (BOOL)zz_isNonEmpty;
//是否为空
+ (BOOL)zz_evaluateEmptyString:(NSString *)string;



+ (instancetype)zz_stringWithJson:(id)json;

- (id)zz_jsonData;

/**
 *  去除前后的空格
 *
 *  @return     trimmed string
 */
- (NSString *)zz_trimmedString;





@end



@interface NSString (size)

/**
 通过maxW获取string size
 */
- (CGSize)zz_sizeWithFont:(UIFont *)font maxW:(CGFloat)maxW;

/**
 获取string size
 */
- (CGSize)zz_sizeWithFont:(UIFont *)font;

/**
 获取字符串高度
 */
-(CGFloat)zz_textHeight:(UIFont*)font;

/**
 获取字符串高度

 @param width 最大宽度
 @param font 字体
 @param lineSpacing 调整行间距
 @return 字符串rect
 */
- (CGRect)zz_fixWidthFrame:(CGFloat)width font:(UIFont *)font lineSpacing:(CGFloat)lineSpacing;

@end




@interface NSString (encipher)

/**
 *  base64加密
 *
 *  @return         base64加密后的字符串
 */
- (NSString *)zz_base64Encoding;

/**
 *  base64解密
 *
 *  @return         解密后的字符串
 */
- (NSString *)zz_base64Decoding;

/**
 *  md5加密
 *
 *  @return         MD5加密后的字符串
 */
- (NSString *)zz_md5Encoding;

@end



@interface NSString (Regex)

/**
 *  检验字符串是否符合正则表达式
 *
 *  @param regex     正则表达式
 *  @return     检验成功返回 YES, 反之返回 NO
 */
- (BOOL)zz_evaluateWithRegex:(NSString *)regex;

/**
 *  提取第一个满足正则表达式的字符串
 *
 *  @param regex     正则表达式
 *  @return     返回满足正则表达式的第一个字符串
 */
- (NSString *)zz_substringWithRegex:(NSString *)regex;

/**
 *  获取所有匹配正则表达式的字符串范围
 *
 *  @param regex     正则表达式
 *  @return          匹配结果, NSRange(包装为NSValue)数组
 */
- (NSArray <NSValue *> *)zz_rangesWithRegex:(NSString *)regex;

@end












